package com._4cmd.store.vpn;

import java.util.Collection;

import com._4cmd.data.vpn.User;

/**
 * CRUD for VPN user
 * @author chaowang
 *
 */
public interface UserStore {
	/**
	 * Get the user using the user ID
	 * @param userID
	 * @return
	 */
	public User getUser(String userID);
	
	/**
	 * update the user using the user object , if the number is zero , the String or Object is null 
	 * can not update this value
	 * @param user
	 * @return
	 */
	public User updateUser(User user);
	
	/**
	 * create the user using the user object
	 * @param user
	 * @return
	 */
	public User createUser(User user);
	
	/**
	 * remove the user using the user ID
	 * @param userID
	 */
	public void removeUser(String userID);
	
	/**
	 * query the user
	 * @param filter
	 * @return
	 */
	public Collection<User> queryUser(QueryFilter filter);
}
